/* =========================================
   1. REGLAGES GENERAUX
========================================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --bleu: #123b56;
    --bleu-fonce: #0b293d;
    --vert: #198754;
    --vert-clair: #e9f6ee;
    --texte: #263746;
    --texte-secondaire: #64748b;
    --fond: #f5f8fa;
    --blanc: #ffffff;
    --bordure: #e2e8f0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    color: var(--texte);
    background-color: var(--fond);
    line-height: 1.6;
}

a {
    text-decoration: none;
}


/* =========================================
   2. BARRE DE NAVIGATION
========================================= */

/* =========================================
   2. EN-TÊTE ET NAVIGATION
   Même style que la page Accueil
========================================= */

.entete {
    width: 100%;
    min-height: 80px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 10px 5%;

    background-color: #c2e091;

    border-bottom: 1px solid #e7ebf0;

    position: relative;
    z-index: 10;
}


/* Logo */

.logo {
    display: flex;
    align-items: center;
}

.logo_site {
    width: 165px;
    height: 60px;

    object-fit: contain;
}


/* Liens de navigation */

.nav_links ul {
    display: flex;
    align-items: center;
    gap: 30px;

    list-style: none;
}

.link {
    display: inline-block;

    color: #263247;

    font-size: 15px;
    font-weight: 600;

    padding: 8px 0;

    transition: color 0.3s ease;
}

.link:hover,
.link.active {
    color: #176b38;
}


/* =========================================
   3. BANNIERE DE PRESENTATION
========================================= */

.hero_cours {
    min-height: 370px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 75px 7%;

    color: var(--blanc);
    text-align: center;

    background:
        linear-gradient(120deg,
            rgba(11, 41, 61, 0.96),
            rgba(18, 59, 86, 0.88)),
        url("../images/ecran_large_accueil_image.png");

    background-size: cover;
    background-position: center;
}

.hero_contenu {
    max-width: 850px;
}

.surtitre {
    display: inline-block;

    color: #75d5a1;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;

    margin-bottom: 15px;
}

.hero_cours h1 {
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.2;

    margin-bottom: 20px;
}

.hero_cours p {
    max-width: 720px;

    margin: 0 auto 28px;

    color: #e0eaf0;
    font-size: 16px;
}

.bouton_principal {
    display: inline-block;

    padding: 13px 24px;

    background-color: var(--vert);
    color: var(--blanc);

    border-radius: 7px;

    font-size: 14px;
    font-weight: 700;

    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}

.bouton_principal:hover {
    background-color: #126b41;
    transform: translateY(-2px);
}


/* =========================================
   4. SECTION DES DOMAINES
========================================= */

.section_domaines {
    padding: 75px 7%;
}

.section_titre {
    max-width: 760px;

    margin: 0 auto 42px;

    text-align: center;
}

.section_titre .surtitre {
    color: var(--vert);
}

.section_titre h2 {
    color: var(--bleu);

    font-size: clamp(25px, 3vw, 34px);

    line-height: 1.3;
    margin-bottom: 15px;
}

.section_titre p {
    color: var(--texte-secondaire);
    font-size: 15px;
}


/* =========================================
   5. GRILLE DES CARTES
========================================= */

.domaines_grille {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 25px;

    max-width: 1400px;
    margin: 0 auto;
}


/* =========================================
   6. APPARENCE DES CARTES
========================================= */

.carte_domaine {
    display: flex;
    flex-direction: column;

    min-width: 0;

    background-color: var(--blanc);

    border: 1px solid var(--bordure);
    border-radius: 12px;

    overflow: hidden;

    box-shadow: 0 4px 15px rgba(15, 40, 60, 0.04);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.carte_domaine:hover {
    transform: translateY(-6px);

    border-color: #c4e5d2;

    box-shadow: 0 12px 28px rgba(15, 40, 60, 0.12);
}


/* =========================================
   7. IMAGES DES CARTES
========================================= */

.image_domaine {
    display: block;

    width: 100%;
    height: 145px;

    object-fit: cover;

    background-color: #e2e8f0;

    transition: transform 0.4s ease;
}

.carte_domaine:hover .image_domaine {
    transform: scale(1.04);
}


/* =========================================
   8. CONTENU DES CARTES
========================================= */

.contenu_carte {
    display: flex;
    flex-direction: column;

    flex: 1;

    padding: 22px;
}

.numero {
    align-self: flex-start;

    display: inline-block;

    padding: 5px 10px;

    margin-bottom: 13px;

    background-color: var(--vert-clair);
    color: var(--vert);

    border-radius: 5px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
}

.contenu_carte h3 {
    color: var(--bleu);

    font-size: 17px;
    line-height: 1.45;

    margin-bottom: 12px;
}

.contenu_carte p {
    color: var(--texte-secondaire);

    font-size: 13px;
    line-height: 1.8;

    margin-bottom: 22px;
}


/* =========================================
   9. BAS DES CARTES ET BOUTONS
========================================= */

.pied_carte {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;

    margin-top: auto;
    padding-top: 16px;

    border-top: 1px solid var(--bordure);
}

.pied_carte>span {
    color: var(--texte-secondaire);

    font-size: 12px;
    font-weight: 700;
}

.bouton_carte {
    display: inline-block;

    padding: 9px 12px;

    background-color: var(--bleu);
    color: var(--blanc);

    border-radius: 5px;

    font-size: 11px;
    font-weight: 700;

    white-space: nowrap;

    transition: background-color 0.3s ease;
}

.bouton_carte:hover {
    background-color: var(--vert);
}


/* =========================================
   10. PIED DE PAGE
========================================= */

/* =========================================
   11. TABLETTES
========================================= */

@media (max-width: 1050px) {

    .entete {
        padding-left: 4%;
        padding-right: 4%;
    }

    .navigation {
        gap: 16px;
    }

    .section_domaines {
        padding-left: 4%;
        padding-right: 4%;
    }

    .domaines_grille {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

}


/* =========================================
   12. TELEPHONES
========================================= */

@media (max-width: 700px) {

    .entete {
        flex-direction: column;
        gap: 15px;

        padding: 15px 5%;
    }

    .nav_links ul {
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px 18px;
    }

    .link {
        font-size: 13px;
    }

}